package com.tledu.io;

import java.io.*;

public class IO04 {
    public static void main(String[] args) {
        // 字节流处理
        // 字节流的读取
        String fileName = "C:\\Users\\cyrus\\Desktop\\大数据17期\\study-java\\src\\com\\tledu\\io\\test";
//        System.out.println(readFile(fileName));
        write(fileName,"尚云-河北科技大学");
    }

    public static void write(String path, String content) {
        FileOutputStream out = null;
        try {
            out = new FileOutputStream(path);
            out.write(content.getBytes("UTF8"));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                out.flush();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static String readFile(String path) {
        FileInputStream in = null;
        String result = "";
        try {
            in = new FileInputStream(path);
            // 获取到字节个数
            System.out.println(in.available());
            // 创建数组，并且以文件中的字节树，作为它的容量
            byte[] bytes = new byte[in.available()];
            in.read(bytes);
            // 把字节数组转成字符串
            result = new String(bytes, "UTF-8");
//            for (byte b : bytes) {
//                System.out.println(b);
//            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    // 1，流的分类
    //  输入流和输出流
    //  字节流和字符流
    //  节点流和处理流
    // 2. 文件操作，通过File类对本地文件进行相关操作，这里有操作api如mkdir、delete、createNewFile、exists
    // 3. 通过流进行文件读写
    //      FileInputStream 文件字节输入流
    //      FileOutputStream 文件字节输入入流
    //      FileReader 文件字符输入流
    //      FileWriter 文件字符输出流

}
